//
//  main.m
//  Work_4
//
//  Created by dllo on 16/7/8.
//  Copyright © 2016年 yh. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Color.h"


int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //        处理⽂件crayons.txt中的⽂本信息，⽂本内容是关于颜⾊的，每⾏都是⼀ 个颜⾊的信息，例如：Almond #EED9C4，前⼀个字符串是颜⾊的名称，后⼀ 个字符串是颜⾊的16进制⾊值，处理⽂本完成如下需求:
        //
        //        使⽤字典管理所有的颜⾊，即字典中存储的是多个键值对，颜⾊名称为 key，16进制颜⾊值（不带#）是value。
        //        使⽤⼀个新的字典管理颜⾊，对颜⾊进⾏分类管理，即：“A”，“B”，“C”… 即这个字典包含多个键值对，key是26个字⺟，value是数组，数组⾥存放的是 Color对象（包含name和colorValue）。需要⾃⼰创建Color类。
        
//        NSString * dataString = [NSString stringWithContentsOfFile:@"/Users/dllo/Desktop/Homework-04/crayons.txt" encoding:NSUTF8StringEncoding error:nil];
//        // 根据回车截取字符串 将字符串放到数组中
//        NSArray *allColorArray = [dataString componentsSeparatedByString:@"\n"];
//        NSLog(@"%@", allColorArray);
        NSString *path = @"/Users/dllo/DLS160710/Objective-C/HomeWork/Work_4/Work_4/crayons.txt";
        // 通过路径读取文件中的字符
        NSString *souStr = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"%@", souStr);
        // 根据回车截取字符串
        NSArray *allColorArr = [souStr componentsSeparatedByString:@"\n"];
        NSLog(@"%@", allColorArr);
        // 声明存储颜色的可变字典
        NSMutableDictionary *colorDic = [NSMutableDictionary dictionary];
        for (NSInteger i = 0; i < allColorArr.count; i++) {
            if ([allColorArr[i] length] > 0) {
           NSArray *color = [allColorArr[i] componentsSeparatedByString:@" #"];
                [colorDic setObject:[color lastObject] forKey:[color firstObject]];
            }
        }
        NSLog(@"%@", colorDic);
        
        // 2.
        
        NSArray *allKeys = colorDic.allKeys;
        NSMutableDictionary *newColorDic = [NSMutableDictionary dictionary];
        for (NSInteger i = 0; i < colorDic.allKeys.count; i++) {
            // 取首字母
            NSString *bigLetter = [allKeys[i] substringWithRange:NSMakeRange(0, 1)];
            // 通过首字母取数组 字典的key对应的value是数组
            NSMutableArray *colorArr = [newColorDic objectForKey:bigLetter];
            Color *newColor = [[Color alloc] init];
            // 根据老字典的key和value生产新的对象
            newColor.colorName = allKeys[i];
            newColor.colorValue = [colorDic objectForKey:allKeys[i]];
            // 判断从新字典取得数组是否为空
            if (colorArr == nil) {
                // 创建 赋值
                colorArr = [NSMutableArray arrayWithObject:newColor];
                [newColorDic setObject:colorArr forKey:bigLetter];
            } else {
                // 存在数组 直接添加
                [colorArr addObject:newColor];
            }
        }
        
        NSLog(@"%@", newColorDic);
        
        
        
        
    
    
    }
    return 0;
}
